//
//  FPBaseViewController.h
//  FinanceProject
//
//  Created by 陈显摆 on 2025/1/15.
//

#import <UIKit/UIKit.h>
#import "CustomPopOverView.h"
#import <CoreLocation/CLLocationManager.h>
#import <CoreLocation/CoreLocation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger , XYCustomNavigationStyle) {
    
    XYCustomNavigationStyleWhite,
    XYCustomNavigationStyleBlack,
    XYCustomNavigationStyleClear,
};

@interface FPBaseViewController : UIViewController

@property (nonatomic , assign) XYCustomNavigationStyle style;

@property (nonatomic , strong) NSMutableArray *dataSource;
@property (nonatomic , strong) UILabel *titleLabel;

@property (nonatomic , strong) UITableView *tableView;
@property (nonatomic , strong) UITableView *group_tableView;

@property (nonatomic , strong) UIButton *closeBtn; //!< 左上角显示 X  关闭button
@property (nonatomic , strong) UIButton *rightBtn; //!< 右上角 一般是客服button

@property (nonatomic , assign) BOOL tableViewScrollEnable;

@property (nonatomic , strong) UIWindow *customWindow;

@property (nonatomic , strong) NSString *titleString;

@property (nonatomic , strong) CustomPopOverView *customPopView;

@property (nonatomic , strong) UIView *navView;

- (void)setBackButtonStyleWhite:(BOOL)isWhite;
- (void)setTitleStyleColor:(UIColor *)color;


/**
 * 自定义toast 显示1.5秒
 */
- (void)showText:(NSString *)text;

- (void)showError:(NSError *)error;

/**
 * 自定义toast afterDelay如果为0: 不会消失
 */
- (void)showText:(NSString *)text afterDelay:(NSTimeInterval)afterDelay;

/**
 * 手动隐藏自定的toast 如果有必要
 */
- (void)hideLoading;

/**
 * 在第一层tab bar界面进入次级界面的时候有可能会卡死, 这可能是导航栏或者tab bar频繁隐藏导致, 禁用返回手势
 */
- (void)forbiddenSideBack;

/**
 * 在第一层tab bar界面进入次级界面的时候有可能会卡死, 这可能是导航栏或者tab bar频繁隐藏导致, 打开返回手势
 */
- (void)resetSideBack;


/**
 * 来个window 可以在window上放东西
 */
- (void)showWindowCanTapHidden:(BOOL)canHidden;

/**
 * 隐藏辣个window
 */
- (void)hideWindow;

/**
 * 设置导航栏相关
 */
- (void)setTitle:(NSString *)title style:(XYCustomNavigationStyle)style hiddenBackBtn:(BOOL)hiddenBackBtn;

/**
 * 是否隐藏左上角的 X
 */
- (void)hiddenLeftCloseButton:(BOOL)hidden;

/**
 * 是否拥有定位权限
 */
//- (BOOL)locationAuthStatusIsValid;

/**
 * 显示tableView的footer "没有更多啦~"
 */
- (void)showTableFooterNoMoreDataView;

/**
 * 隐藏tableView的footer "没有更多啦~"
 */
- (void)hideTableFooterNoMoreDataView;

/**
 * 获取当前的定位权限
 * kCLAuthorizationStatusNotDetermined 不确定unknow
 * kCLAuthorizationStatusRestricted 位置服务受限
 * kCLAuthorizationStatusDenied 用户拒绝使用位置服务
 * kCLAuthorizationStatusAuthorizedAlways 用户同意一直使用位置服务，前台/后台
 * kCLAuthorizationStatusAuthorizedWhenInUse 用户仅同意在应用使用期间使用位置服务
 */
- (CLAuthorizationStatus)authorizationStatus;

- (void)initUI;

- (void)backAction;

- (void)setRightButton;

- (void)rightButtonAction;

/**
 * 签署协议
 */
- (void)signProtocolWithParams:(NSMutableArray *)params;

//- (void)showLoginView;

@end

NS_ASSUME_NONNULL_END
